<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>2020百度之星开发者大赛方案 | GLIMMER小作坊的工具人</title>
    <meta name="description" content="时间太瘦，指尖太宽，且行且珍惜">
    <meta name="generator" content="VuePress 1.4.0">
    <link rel="icon" href="/vuepress/image.png">
  <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
  <script language="javascript" type="text/javascript" src="https://cdn.staticfile.org/jquery/1.7.2/jquery.min.js"></script>
  <script language="javascript" type="text/javascript" src="/js/MouseClickEffect.js"></script>
    
    <link rel="preload" href="/assets/css/0.styles.7c2ddbea.css" as="style"><link rel="preload" href="/assets/js/app.c1719760.js" as="script"><link rel="preload" href="/assets/js/5.882ae477.js" as="script"><link rel="preload" href="/assets/js/1.ad2741e3.js" as="script"><link rel="preload" href="/assets/js/2.b0f5b6a6.js" as="script"><link rel="preload" href="/assets/js/26.5c85b2c3.js" as="script"><link rel="preload" href="/assets/js/20.a8dae886.js" as="script"><link rel="prefetch" href="/assets/js/10.061af50f.js"><link rel="prefetch" href="/assets/js/100.85317b0d.js"><link rel="prefetch" href="/assets/js/101.8b7e5f17.js"><link rel="prefetch" href="/assets/js/102.724e3dd3.js"><link rel="prefetch" href="/assets/js/103.bfb1dc09.js"><link rel="prefetch" href="/assets/js/104.bc172956.js"><link rel="prefetch" href="/assets/js/105.dd66d16a.js"><link rel="prefetch" href="/assets/js/106.934eb59f.js"><link rel="prefetch" href="/assets/js/107.6f0b24bd.js"><link rel="prefetch" href="/assets/js/108.1e5abf7c.js"><link rel="prefetch" href="/assets/js/109.0b133847.js"><link rel="prefetch" href="/assets/js/11.c1bf9f21.js"><link rel="prefetch" href="/assets/js/110.4452fac4.js"><link rel="prefetch" href="/assets/js/111.8dbe7cfe.js"><link rel="prefetch" href="/assets/js/112.a2640d20.js"><link rel="prefetch" href="/assets/js/113.1776625c.js"><link rel="prefetch" href="/assets/js/114.b2f2dd05.js"><link rel="prefetch" href="/assets/js/115.4c5e3507.js"><link rel="prefetch" href="/assets/js/116.55246e31.js"><link rel="prefetch" href="/assets/js/117.73fbc87f.js"><link rel="prefetch" href="/assets/js/118.64a28e52.js"><link rel="prefetch" href="/assets/js/119.eb809170.js"><link rel="prefetch" href="/assets/js/12.50fe0adf.js"><link rel="prefetch" href="/assets/js/120.103458ff.js"><link rel="prefetch" href="/assets/js/121.ce43023f.js"><link rel="prefetch" href="/assets/js/122.9ccdb852.js"><link rel="prefetch" href="/assets/js/123.61815387.js"><link rel="prefetch" href="/assets/js/124.08e66733.js"><link rel="prefetch" href="/assets/js/125.8057f00b.js"><link rel="prefetch" href="/assets/js/126.31a70f61.js"><link rel="prefetch" href="/assets/js/127.3b67b02c.js"><link rel="prefetch" href="/assets/js/128.b577a571.js"><link rel="prefetch" href="/assets/js/129.9d910324.js"><link rel="prefetch" href="/assets/js/13.a866e204.js"><link rel="prefetch" href="/assets/js/130.8aca0d81.js"><link rel="prefetch" href="/assets/js/131.ea811b09.js"><link rel="prefetch" href="/assets/js/132.76bfb2dc.js"><link rel="prefetch" href="/assets/js/133.a2c35376.js"><link rel="prefetch" href="/assets/js/134.06ae0a00.js"><link rel="prefetch" href="/assets/js/14.78f9cc08.js"><link rel="prefetch" href="/assets/js/15.d4060631.js"><link rel="prefetch" href="/assets/js/16.3434d0b6.js"><link rel="prefetch" href="/assets/js/17.eda8d321.js"><link rel="prefetch" href="/assets/js/18.bdd63861.js"><link rel="prefetch" href="/assets/js/19.fbd1cf33.js"><link rel="prefetch" href="/assets/js/21.b6f04af7.js"><link rel="prefetch" href="/assets/js/22.f7430b65.js"><link rel="prefetch" href="/assets/js/23.9ac373d9.js"><link rel="prefetch" href="/assets/js/24.e22a443a.js"><link rel="prefetch" href="/assets/js/25.36f2adb4.js"><link rel="prefetch" href="/assets/js/27.51c2e282.js"><link rel="prefetch" href="/assets/js/28.3b5555cb.js"><link rel="prefetch" href="/assets/js/29.f290854b.js"><link rel="prefetch" href="/assets/js/30.6495d68c.js"><link rel="prefetch" href="/assets/js/31.d2291244.js"><link rel="prefetch" href="/assets/js/32.67cb6a0b.js"><link rel="prefetch" href="/assets/js/33.ebac8658.js"><link rel="prefetch" href="/assets/js/34.b4056456.js"><link rel="prefetch" href="/assets/js/35.2d35ec45.js"><link rel="prefetch" href="/assets/js/36.6da1ac84.js"><link rel="prefetch" href="/assets/js/37.8d970d48.js"><link rel="prefetch" href="/assets/js/38.94dfd07f.js"><link rel="prefetch" href="/assets/js/39.b0e22253.js"><link rel="prefetch" href="/assets/js/40.a0e6dc1e.js"><link rel="prefetch" href="/assets/js/41.67345a28.js"><link rel="prefetch" href="/assets/js/42.bae9c869.js"><link rel="prefetch" href="/assets/js/43.d62be483.js"><link rel="prefetch" href="/assets/js/44.2efe511e.js"><link rel="prefetch" href="/assets/js/45.e44be0c9.js"><link rel="prefetch" href="/assets/js/46.429897b0.js"><link rel="prefetch" href="/assets/js/47.026450f6.js"><link rel="prefetch" href="/assets/js/48.1b6ac3b2.js"><link rel="prefetch" href="/assets/js/49.0d5de7d1.js"><link rel="prefetch" href="/assets/js/50.bcaa0633.js"><link rel="prefetch" href="/assets/js/51.bbe1f24b.js"><link rel="prefetch" href="/assets/js/52.4d4d4941.js"><link rel="prefetch" href="/assets/js/53.b3074dbb.js"><link rel="prefetch" href="/assets/js/54.7b51af21.js"><link rel="prefetch" href="/assets/js/55.4880a3a5.js"><link rel="prefetch" href="/assets/js/56.0fbaa129.js"><link rel="prefetch" href="/assets/js/57.fa32ec0f.js"><link rel="prefetch" href="/assets/js/58.3ab779c1.js"><link rel="prefetch" href="/assets/js/59.f7416e71.js"><link rel="prefetch" href="/assets/js/6.cfda4e49.js"><link rel="prefetch" href="/assets/js/60.f997e769.js"><link rel="prefetch" href="/assets/js/61.b6ce2d29.js"><link rel="prefetch" href="/assets/js/62.484e896b.js"><link rel="prefetch" href="/assets/js/63.7436e7b5.js"><link rel="prefetch" href="/assets/js/64.0af3fb9d.js"><link rel="prefetch" href="/assets/js/65.cc6b1063.js"><link rel="prefetch" href="/assets/js/66.b226aae4.js"><link rel="prefetch" href="/assets/js/67.23fa8790.js"><link rel="prefetch" href="/assets/js/68.fb8897ef.js"><link rel="prefetch" href="/assets/js/69.ca44c95b.js"><link rel="prefetch" href="/assets/js/7.4ce0026c.js"><link rel="prefetch" href="/assets/js/70.dc65b621.js"><link rel="prefetch" href="/assets/js/71.627c41f8.js"><link rel="prefetch" href="/assets/js/72.30703fc7.js"><link rel="prefetch" href="/assets/js/73.48afc079.js"><link rel="prefetch" href="/assets/js/74.1181783d.js"><link rel="prefetch" href="/assets/js/75.c70d8736.js"><link rel="prefetch" href="/assets/js/76.a2c7c0b4.js"><link rel="prefetch" href="/assets/js/77.ba42676c.js"><link rel="prefetch" href="/assets/js/78.1bdfbac5.js"><link rel="prefetch" href="/assets/js/79.5343f801.js"><link rel="prefetch" href="/assets/js/8.94e9fcf2.js"><link rel="prefetch" href="/assets/js/80.aaff9fb9.js"><link rel="prefetch" href="/assets/js/81.7855e1f9.js"><link rel="prefetch" href="/assets/js/82.a522f853.js"><link rel="prefetch" href="/assets/js/83.d417cbce.js"><link rel="prefetch" href="/assets/js/84.aa477229.js"><link rel="prefetch" href="/assets/js/85.737ceb08.js"><link rel="prefetch" href="/assets/js/86.76914c69.js"><link rel="prefetch" href="/assets/js/87.ca65d02a.js"><link rel="prefetch" href="/assets/js/88.ecd6fbe0.js"><link rel="prefetch" href="/assets/js/89.8321befc.js"><link rel="prefetch" href="/assets/js/9.8972d482.js"><link rel="prefetch" href="/assets/js/90.3130a41f.js"><link rel="prefetch" href="/assets/js/91.662fea10.js"><link rel="prefetch" href="/assets/js/92.afebfc2f.js"><link rel="prefetch" href="/assets/js/93.93c4872e.js"><link rel="prefetch" href="/assets/js/94.1ef96f22.js"><link rel="prefetch" href="/assets/js/95.76a35ecf.js"><link rel="prefetch" href="/assets/js/96.afd7ca1a.js"><link rel="prefetch" href="/assets/js/97.e5ffb86e.js"><link rel="prefetch" href="/assets/js/98.7bb55507.js"><link rel="prefetch" href="/assets/js/99.4ded3fca.js"><link rel="prefetch" href="/assets/js/vendors~flowchart.b04affb9.js">
    <link rel="stylesheet" href="/assets/css/0.styles.7c2ddbea.css">
  </head>
  <body>
    <div id="app" data-server-rendered="true"><div><div class="theme-container" data-v-4d80cb8a><div data-v-4d80cb8a><div id="loader-wrapper" class="loading-wrapper" data-v-4b73742e data-v-4d80cb8a data-v-4d80cb8a><div class="loader-main" data-v-4b73742e><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div></div> <!----> <!----></div> <div class="password-shadow password-wrapper-out" style="display:none;" data-v-0b619cf4 data-v-4d80cb8a data-v-4d80cb8a><h3 class="title" style="display:none;" data-v-0b619cf4 data-v-0b619cf4>GLIMMER小作坊的工具人</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-0b619cf4 data-v-0b619cf4><input type="password" value="" data-v-0b619cf4> <span data-v-0b619cf4>Konck! Knock!</span> <button data-v-0b619cf4>OK</button></label> <div class="footer" style="display:none;" data-v-0b619cf4 data-v-0b619cf4><span data-v-0b619cf4><i class="iconfont reco-theme" data-v-0b619cf4></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-0b619cf4>vuePress-theme-reco</a></span> <span data-v-0b619cf4><i class="iconfont reco-copyright" data-v-0b619cf4></i> <a data-v-0b619cf4><span data-v-0b619cf4>LJoson</span>
            
          <span data-v-0b619cf4>2020 - </span>
          2025
        </a></span></div></div> <div class="hide" data-v-4d80cb8a><header class="navbar" data-v-4d80cb8a><div title="导航" class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">GLIMMER小作坊的工具人</span></a> <div class="links"><div class="color-picker"><a class="color-button"><i class="iconfont reco-color"></i></a> <div class="color-picker-menu" style="display:none;"><div class="mode-options"><h4 class="title">Choose mode</h4> <ul class="color-mode-options"><li class="dark">dark</li><li class="auto active">auto</li><li class="light">light</li></ul></div></div></div> <div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/index.html" class="nav-link"><i class="iconfont reco-home"></i>
  Home
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-category"></i>
      分类
    </span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/categories/AI及机器人等/" class="nav-link"><i class="iconfont undefined"></i>
  AI及机器人等
</a></li><li class="dropdown-item"><!----> <a href="/categories/算法等/" class="nav-link"><i class="iconfont undefined"></i>
  算法等
</a></li><li class="dropdown-item"><!----> <a href="/categories/计算机技术等/" class="nav-link"><i class="iconfont undefined"></i>
  计算机技术等
</a></li><li class="dropdown-item"><!----> <a href="/categories/电子设计等/" class="nav-link"><i class="iconfont undefined"></i>
  电子设计等
</a></li><li class="dropdown-item"><!----> <a href="/categories/杂谈/" class="nav-link"><i class="iconfont undefined"></i>
  杂谈
</a></li><li class="dropdown-item"><!----> <a href="/categories/游戏设计等/" class="nav-link"><i class="iconfont undefined"></i>
  游戏设计等
</a></li><li class="dropdown-item"><!----> <a href="/categories/笔记等/" class="nav-link"><i class="iconfont undefined"></i>
  笔记等
</a></li></ul></div></div><div class="nav-item"><a href="/tag/" class="nav-link"><i class="iconfont reco-tag"></i>
  标签
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-document"></i>
      我的
    </span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>Projects🎈</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/projects/github.html" class="nav-link"><i class="iconfont undefined"></i>
  Project on github
</a></li></ul></li><li class="dropdown-item"><h4>Station🎈</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://github.com/LJoson" target="_blank" rel="noopener noreferrer" class="nav-link external"><i class="iconfont undefined"></i>
  GitHub
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-subitem"><a href="https://blog.csdn.net/qq_43743037" target="_blank" rel="noopener noreferrer" class="nav-link external"><i class="iconfont undefined"></i>
  CSDN
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul></div></div><div class="nav-item"><a href="/timeLine/index.html" class="nav-link"><i class="iconfont reco-date"></i>
  时间线
</a></div><div class="nav-item"><a href="https://ljoson.github.io/arXiv_daily" target="_blank" rel="noopener noreferrer" class="nav-link external"><i class="iconfont reco-document"></i>
  每日论文摘要
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="nav-item"><a href="/about/aboutme.html" class="nav-link"><i class="iconfont reco-message"></i>
  关于坊主
</a></div> <!----></nav></div></header> <div class="sidebar-mask" data-v-4d80cb8a></div> <aside class="sidebar" data-v-4d80cb8a><div class="personal-info-wrapper" data-v-79645776><img src="/vuepress/Headimage.jpg" alt="author-avatar" class="personal-img" data-v-79645776> <h3 class="name" data-v-79645776>
    LJoson
  </h3> <div class="num" data-v-79645776><div data-v-79645776><h3 data-v-79645776>105</h3> <h6 data-v-79645776>文章</h6></div> <div data-v-79645776><h3 data-v-79645776>49</h3> <h6 data-v-79645776>标签</h6></div></div> <hr data-v-79645776></div> <nav class="nav-links"><div class="nav-item"><a href="/index.html" class="nav-link"><i class="iconfont reco-home"></i>
  Home
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-category"></i>
      分类
    </span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/categories/AI及机器人等/" class="nav-link"><i class="iconfont undefined"></i>
  AI及机器人等
</a></li><li class="dropdown-item"><!----> <a href="/categories/算法等/" class="nav-link"><i class="iconfont undefined"></i>
  算法等
</a></li><li class="dropdown-item"><!----> <a href="/categories/计算机技术等/" class="nav-link"><i class="iconfont undefined"></i>
  计算机技术等
</a></li><li class="dropdown-item"><!----> <a href="/categories/电子设计等/" class="nav-link"><i class="iconfont undefined"></i>
  电子设计等
</a></li><li class="dropdown-item"><!----> <a href="/categories/杂谈/" class="nav-link"><i class="iconfont undefined"></i>
  杂谈
</a></li><li class="dropdown-item"><!----> <a href="/categories/游戏设计等/" class="nav-link"><i class="iconfont undefined"></i>
  游戏设计等
</a></li><li class="dropdown-item"><!----> <a href="/categories/笔记等/" class="nav-link"><i class="iconfont undefined"></i>
  笔记等
</a></li></ul></div></div><div class="nav-item"><a href="/tag/" class="nav-link"><i class="iconfont reco-tag"></i>
  标签
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-document"></i>
      我的
    </span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>Projects🎈</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/projects/github.html" class="nav-link"><i class="iconfont undefined"></i>
  Project on github
</a></li></ul></li><li class="dropdown-item"><h4>Station🎈</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://github.com/LJoson" target="_blank" rel="noopener noreferrer" class="nav-link external"><i class="iconfont undefined"></i>
  GitHub
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-subitem"><a href="https://blog.csdn.net/qq_43743037" target="_blank" rel="noopener noreferrer" class="nav-link external"><i class="iconfont undefined"></i>
  CSDN
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul></div></div><div class="nav-item"><a href="/timeLine/index.html" class="nav-link"><i class="iconfont reco-date"></i>
  时间线
</a></div><div class="nav-item"><a href="https://ljoson.github.io/arXiv_daily" target="_blank" rel="noopener noreferrer" class="nav-link external"><i class="iconfont reco-document"></i>
  每日论文摘要
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="nav-item"><a href="/about/aboutme.html" class="nav-link"><i class="iconfont reco-message"></i>
  关于坊主
</a></div> <!----></nav>  <ul class="sidebar-links"><li><a href="/views/" class="sidebar-link">概览</a></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading open"><span>AI及机器人等</span> <span class="arrow down"></span></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/views/AI/detection.html" class="sidebar-link">目标检测及识别在服务端部署Demo</a></li><li><a href="/views/AI/tf2.0.html" class="sidebar-link">tensorflow2.0学习笔记</a></li><li><a href="/views/AI/2020baidustar.html" class="active sidebar-link">2020百度之星开发者大赛方案</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/views/AI/2020baidustar.html#工程环境：" class="sidebar-link">工程环境：</a></li><li class="sidebar-sub-header"><a href="/views/AI/2020baidustar.html#工程地址" class="sidebar-link">工程地址</a></li><li class="sidebar-sub-header"><a href="/views/AI/2020baidustar.html#模型下载" class="sidebar-link">模型下载</a></li><li class="sidebar-sub-header"><a href="/views/AI/2020baidustar.html#初赛数据准备及评价分析" class="sidebar-link">初赛数据准备及评价分析</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/views/AI/2020baidustar.html#数据分析" class="sidebar-link">数据分析</a></li><li class="sidebar-sub-header"><a href="/views/AI/2020baidustar.html#数据集" class="sidebar-link">数据集</a></li><li class="sidebar-sub-header"><a href="/views/AI/2020baidustar.html#评价标准分析" class="sidebar-link">评价标准分析</a></li><li class="sidebar-sub-header"><a href="/views/AI/2020baidustar.html#检测思路和方案" class="sidebar-link">检测思路和方案</a></li><li class="sidebar-sub-header"><a href="/views/AI/2020baidustar.html#匹配思路和方案" class="sidebar-link">匹配思路和方案</a></li></ul></li><li class="sidebar-sub-header"><a href="/views/AI/2020baidustar.html#复赛阶段数据分析" class="sidebar-link">复赛阶段数据分析</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/views/AI/2020baidustar.html#检测模型" class="sidebar-link">检测模型</a></li><li class="sidebar-sub-header"><a href="/views/AI/2020baidustar.html#匹配方案" class="sidebar-link">匹配方案</a></li></ul></li><li class="sidebar-sub-header"><a href="/views/AI/2020baidustar.html#参考引用" class="sidebar-link">参考引用</a></li></ul></li><li><a href="/views/AI/TextClassification.html" class="sidebar-link">基于CNN+attention+bilstm的中英文文本情感分析</a></li><li><a href="/views/AI/taac2021.html" class="sidebar-link">2021腾讯广告算法大赛(TAAC2021)</a></li><li><a href="/views/AI/tengine/ohosndk0.html" class="sidebar-link">基于tengine+ohos的ndk开发-环境准备</a></li><li><a href="/views/AI/mmlab/mmpose/00.html" class="sidebar-link">MMPose 入门指南（一）：框架概述</a></li><li><a href="/views/AI/yolo/yolov4.html" class="sidebar-link">Windows 10下使用CMake编译YOLOv4详细教程</a></li><li><a href="/views/AI/yolo/yolov9_ncnn.html" class="sidebar-link">详细记录YOLOv9-c目标检测 ncnn 实现</a></li><li><a href="/views/AI/photo.html" class="sidebar-link">人像卡通化 (Photo to Cartoon)</a></li><li><a href="/views/AI/guiYolov4.html" class="sidebar-link">基于qt及opencv的guiYolov4——demo</a></li><li><a href="/views/AI/RL/curobo.html" class="sidebar-link">CUDA-Accelerated Robot Motion Generation in Milliseconds with NVIDIA cuRobo</a></li><li><a href="/views/AI/RL/env.html" class="sidebar-link">WSL2 Ubuntu20.04下使用Isaac 强化学习仿真环境</a></li><li><a href="/views/AI/ebot/ebot0.html" class="sidebar-link">技术随笔《一》：人形机器人控制算法概述</a></li><li><a href="/views/AI/ebot/ebot1.html" class="sidebar-link">技术随笔《二》：人形机器人模仿学习与传统控制方法概述</a></li></ul></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>算法等</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>计算机技术等</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>硬件及运动控制等</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>杂谈</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>小游戏设计等</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>笔记等</span> <span class="arrow right"></span></p> <!----></section></li></ul> </aside> <div class="password-shadow password-wrapper-in" style="display:none;" data-v-0b619cf4 data-v-4d80cb8a><h3 class="title" style="display:none;" data-v-0b619cf4 data-v-0b619cf4>2020百度之星开发者大赛方案</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-0b619cf4 data-v-0b619cf4><input type="password" value="" data-v-0b619cf4> <span data-v-0b619cf4>Konck! Knock!</span> <button data-v-0b619cf4>OK</button></label> <div class="footer" style="display:none;" data-v-0b619cf4 data-v-0b619cf4><span data-v-0b619cf4><i class="iconfont reco-theme" data-v-0b619cf4></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-0b619cf4>vuePress-theme-reco</a></span> <span data-v-0b619cf4><i class="iconfont reco-copyright" data-v-0b619cf4></i> <a data-v-0b619cf4><span data-v-0b619cf4>LJoson</span>
            
          <span data-v-0b619cf4>2020 - </span>
          2025
        </a></span></div></div> <div data-v-4d80cb8a><main class="page"><!----> <div class="page-title" style="display:none;"><h1>2020百度之星开发者大赛方案</h1> <hr> <div data-v-09556aba><i class="iconfont reco-account" data-v-09556aba><span data-v-09556aba>LJoson</span></i> <i class="iconfont reco-date" data-v-09556aba><span data-v-09556aba>2020-08-17 22:00:12</span></i> <i class="iconfont reco-eye" data-v-09556aba><span id="/views/AI/2020baidustar.html" data-flag-title="Your Article Title" class="leancloud-visitors" data-v-09556aba><a class="leancloud-visitors-count" style="font-size:.9rem;font-weight:normal;color:#999;"></a></span></i> <i class="iconfont reco-tag tags" data-v-09556aba><span class="tag-item" data-v-09556aba>
      比赛
    </span></i></div></div> <div class="theme-reco-content content__default" style="display:none;"><p></p><div class="table-of-contents"><ul><li><a href="#工程环境：">工程环境：</a></li><li><a href="#工程地址">工程地址</a></li><li><a href="#模型下载">模型下载</a></li><li><a href="#初赛数据准备及评价分析">初赛数据准备及评价分析</a><ul><li><a href="#数据分析">数据分析</a></li><li><a href="#数据集">数据集</a></li><li><a href="#评价标准分析">评价标准分析</a></li><li><a href="#检测思路和方案">检测思路和方案</a></li><li><a href="#匹配思路和方案">匹配思路和方案</a></li></ul></li><li><a href="#复赛阶段数据分析">复赛阶段数据分析</a><ul><li><a href="#检测模型">检测模型</a></li><li><a href="#匹配方案">匹配方案</a></li></ul></li><li><a href="#参考引用">参考引用</a></li></ul></div><p></p> <h1 id="_2020百度之星·开发者大赛no-6解决方案"><a href="#_2020百度之星·开发者大赛no-6解决方案" class="header-anchor">#</a> 2020百度之星·开发者大赛NO.6解决方案</h1> <ul><li><strong>【赛事信息】</strong> <a href="https://aistudio.baidu.com/aistudio/competition/detail/39" target="_blank" rel="noopener noreferrer">2020百度之星开发者大赛：交通标识检测与场景匹配<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul> <p>任务说明：对于同一地点不同时间拍摄的两个图形序列，设计一个交通标志检测与匹配模型，给出两组序列图像中交通标志的匹配关系</p> <h1 id="方案简介："><a href="#方案简介：" class="header-anchor">#</a> 方案简介：</h1> <h2 id="工程环境："><a href="#工程环境：" class="header-anchor">#</a> 工程环境：</h2> <ul><li>Python3.7</li> <li>PaddlePaddle1.8，</li> <li>fork <a href="https://aistudio.baidu.com/aistudio/projectdetail/603892" target="_blank" rel="noopener noreferrer">官方基线系统<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul> <h2 id="工程地址"><a href="#工程地址" class="header-anchor">#</a> 工程地址</h2> <p><a href="https://github.com/ZiQiangXie/2020_BaiduStar_Developer_Competition" target="_blank" rel="noopener noreferrer">https://github.com/ZiQiangXie/2020_BaiduStar_Developer_Competition<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p> <h2 id="模型下载"><a href="#模型下载" class="header-anchor">#</a> 模型下载</h2> <p>最高分模型：<a href="https://pan.baidu.com/s/1yJoOeFL121ALMai5ZdJjNQ" target="_blank" rel="noopener noreferrer">model<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>
提取码：yxx6</p> <h2 id="初赛数据准备及评价分析"><a href="#初赛数据准备及评价分析" class="header-anchor">#</a> 初赛数据准备及评价分析</h2> <h3 id="数据分析"><a href="#数据分析" class="header-anchor">#</a> 数据分析</h3> <p>初赛数据集包含训练集 37478 张，测试集 12599 张，检测类别分 19 个小类。</p> <p><img src="/img/AI/2020baidustar/1.png" alt=""></p> <div class="language- extra-class"><pre><code>                图 1 训练集各类别目标数量统计
</code></pre></div><p>通过对训练集的目标数量分析，可以发现各个类别数量极度不均衡，如图 1 所示。19 个类别中有 3 类数量为 0，有 1 类的数量仅为个 位数，有 5 类数量在两位数，而数量最大的“301”类别达到 28707。</p> <p><img src="/img/AI/2020baidustar/3.png" alt=""></p> <div class="language- extra-class"><pre><code>                图 2 训练集目标宽高区间统计
</code></pre></div><p>通过对训练集的目标大小分析，发现小目标的占比非常大，如图2 所示。条形图所在区间表示目标宽高均在该区间范围内的数量，从 图中可以看出，宽高大小在20<em>20以下的目标占比超过80%，仅10</em>10 以下的占比也超过50%，因此数据整体以小目标为主。</p> <h3 id="数据集"><a href="#数据集" class="header-anchor">#</a> 数据集</h3> <ul><li>训练集:采用全部初赛训练集进行训练，目的是使得训练集足够大，有利于模型训练和优化，对于有些样本量非常少的类别，单独分出验证集会使得训练集更缺少相关类别数据，反而不利于优化模型效果。</li> <li>验证集：从全部数据集中随机挑选约 20%左右的数据作为验证集，仅仅作为查看模型效果的参考，不作为选模型依据；</li> <li>数据统计脚本：</li></ul> <table><thead><tr><th>训练集目标宽高区间统计</th> <th>训练集各类别目标数量统计</th></tr></thead> <tbody><tr><td>PaddleDetection_traffic/Cal_target.py</td> <td>PaddleDetection_traffic/baidu_data.py</td></tr></tbody></table> <ul><li>提取验证集脚本：PaddleDetection_traffic/split_val.py</li></ul> <h3 id="评价标准分析"><a href="#评价标准分析" class="header-anchor">#</a> 评价标准分析</h3> <p>F1 score 作为准确率和召回率的一个调和平均，必须同时关注准确率和召回率，因此合适的阈值选择就显得非常重要，单纯的追求其一都无法得到好的分数。</p> <h3 id="检测思路和方案"><a href="#检测思路和方案" class="header-anchor">#</a> 检测思路和方案</h3> <ul><li><p>baseline阶段:直接利用 baseline自带的模型生成结果,提交得分为 0.46782</p></li> <li><p>方案：</p> <table><thead><tr><th></th> <th>score</th> <th></th></tr></thead> <tbody><tr><td>faster_rcnn_r50_vd_fpn_2x</td> <td>0.46782</td> <td>√</td></tr> <tr><td>Faster rcnn+ResNeXt101_vd+dcn+fpn</td> <td>+0.02</td> <td>√</td></tr> <tr><td>yolov4_cspdarknet</td> <td>下降</td> <td>╳</td></tr> <tr><td>cascade rcnn+cbr200_vd+dcn+fpn</td> <td>下降</td> <td>╳</td></tr></tbody></table></li> <li><p>注：初赛配置文件均在 PaddleDetection_traffic/configs/traffic1 文
件夹下，其中 faster_fpn_reader.yml 与其他 Faster_rcnn 模型共用</p></li></ul> <h4 id="检测参数"><a href="#检测参数" class="header-anchor">#</a> 检测参数</h4> <p>根据 F1 的指标评价方法，检测输出的结果必须兼顾准确率和召回率，根据提交结果得分进行合适阈值的选取，最终确定一个比较合理的数值为 0.53</p> <h4 id="小目标问题"><a href="#小目标问题" class="header-anchor">#</a> 小目标问题</h4> <p>针对训练集中存在的大量小目标问题，通过简单的增大网络输入分辨率来提升小目标的检测效果，但是也同时带来了另外一个问题，训练时间和显存占用量明显增加；</p> <h4 id="数据增强"><a href="#数据增强" class="header-anchor">#</a> 数据增强</h4> <p>采用 paddle 自带数据增强 v1，但是发现没有明显效果，最终放弃,v1 所在文件：ppdet/data/transform/autoaugment_utils.py</p> <h4 id="多尺度训练"><a href="#多尺度训练" class="header-anchor">#</a> 多尺度训练</h4> <p>用于cascade模型中，设置<strong>target_size</strong>范围[800, 832, 864, 896, 928, 960, 992, 1024]，**max_size **设置为 1821；
类别不均衡问题 class-aware sample 可以缓解类别不平衡问题，在配置文件名中含 有 cls_aware 的均有配置；</p> <h3 id="匹配思路和方案"><a href="#匹配思路和方案" class="header-anchor">#</a> 匹配思路和方案</h3> <p>初赛阶段匹配模型采用 baseline 模型进行匹配预测，主要侧重与匹配输出的阈值调节和匹配策略分析</p> <h4 id="匹配参数"><a href="#匹配参数" class="header-anchor">#</a> 匹配参数</h4> <p>同样是基于 F1 score 的计算，匹配阈值的选取对最终得分非常重 要，通过多轮调整测试选定 0.66 作为最终阈值，和检测阈值一样，匹配阈值的调整也带来了明显的涨分。</p> <h4 id="匹配分析"><a href="#匹配分析" class="header-anchor">#</a> 匹配分析</h4> <p>通过分析匹配结果，可以发现存在大量的重复匹配，重复匹配是指一个目标与另一张图片中的多个目标匹配，而实际应该是最多有一个匹配，因为只有是同一个目标实体之间的匹配才是正确匹配，因此重复匹配必然也就存在错误匹配。</p> <p><img src="/img/AI/2020baidustar/5.png" alt=""></p> <div class="language- extra-class"><pre><code>            			图3重复匹配示意图
</code></pre></div><p>具体来说，如图3所示，假设A组中检测出目标A1，在B组某一张图片中检出同类型目标B1和B2，理论上A1只能匹配B1或B2中的一个，如果出现了 A1 和 B1、A1 和 B2 匹配则必然有一个是错 误的；更进一步的，如果 A 组中一张图片同时检出了 A1 和 A2，B 组中某一张图片也检出了同类型的 B1 和 B2，还会存在 A1 和 B1、 A1 和 B2、A2 和 B1、A2 和 B2 匹配的情况，但是实际情况下，最多只有两个匹配是正确的，这就导致实际的匹配结果中存在大量的错误匹配，使得 F1 值难以提高，因此对重复匹配的过滤很重要。</p> <h4 id="匹配策略"><a href="#匹配策略" class="header-anchor">#</a> 匹配策略</h4> <ul><li>1）首先考虑到的是去掉不同类型的匹配，不同类型不能匹配；</li> <li>2）根据相似度，对于重复的匹配直接保留相似度最小的一组，但是实际测试得分降低，分析应该是存在某些错误匹配的相似度较高（同一类型，但不是同一个目标实体），仅保留最相似的反而会去掉很多正确的匹配；</li> <li>3）先保留最相似的两组（如果有两组或以上），但是根据余弦距离之差去除距离较大的一组。理论上正确的匹配余弦距离都应该很小，因此如果重复匹配的余弦距离之差较大，则其中距离较大者应为错误匹配并去除，而如果两组距离之差很小，则说明较大的一组仍有可能是正确匹配，保留。</li></ul> <p><img src="/img/AI/2020baidustar/6.png" alt=""></p> <div class="language- extra-class"><pre><code>            图 4 根据阈值差去除重复匹配
</code></pre></div><p>如图 4 所示,左图中与 A1 相匹配的 B1 和 B2，余弦距离很接近,二者之差为 0.05，可以认为 A1 和 B2 也可能是正确匹配，而 A1 和 B1 可能不是同一个目标实体，有可能是错误匹配，但仅从余弦距离无法判定准确的结果，因此两个匹配结果均保留。而右图中两个匹配结果的余弦距离相差较大，所以二者的较大者可能是错误匹配，去除。经过多次尝试，最终确定余弦距离之差为 0.1，最为有效。</p> <h2 id="复赛阶段数据分析"><a href="#复赛阶段数据分析" class="header-anchor">#</a> 复赛阶段数据分析</h2> <p>复赛数据量相当庞大，几乎是初赛的 4 倍，为了得到更加足够充足的训练数据，采用将初赛数据添加到复赛数据集的方案，最终训练集包含图片 133046 张，测试集包含 41125 张，更大的训练集也使得 训练一个 epoch 的时间更长。</p> <p><img src="/img/AI/2020baidustar/2.png" alt=""></p> <div class="language- extra-class"><pre><code>        	图 5 复赛+初赛数据各类别目标数量统计
</code></pre></div><p><img src="/img/AI/2020baidustar/4.png" alt=""></p> <div class="language- extra-class"><pre><code>    			图 6 复赛+初赛数据目标大小统计
</code></pre></div><p>通过图 5、图 6 与图 1、图 2 的对比，可以看出，复赛训练集中各类别数量分布与目标大小分布与初赛数据分布相似，各类别数量仍然是不平衡，而且小目标占比非常大。</p> <h3 id="检测模型"><a href="#检测模型" class="header-anchor">#</a> 检测模型</h3> <h4 id="检测模型方案"><a href="#检测模型方案" class="header-anchor">#</a> 检测模型方案</h4> <p>复赛检测模型共尝试 4 个.</p> <table><thead><tr><th>cascade rcnn+ResNeXt101+dcn+fpn</th> <th>√</th></tr></thead> <tbody><tr><td>cascade rcnn + resnet200+dcn+fpn</td> <td>╳</td></tr> <tr><td>cascade rcnn + cbr200+dcn+fpn</td> <td>╳</td></tr> <tr><td>cascade rcnn + senet154+dcn+fpn</td> <td>╳</td></tr></tbody></table> <ul><li>1）采用 cascade rcnn+ResNeXt101+dcn+fpn 方案，此方案测试效果较好，也是最终采用的检测方案；
配置文件：
cascade_rcnn_cls_aware_dcn_x101_vd_64x4d_fpn_nonlocal_softn ms.yml cascade_rcnn_cls_aware_dcn_x101_vd_64x4d_fpn_nonlocal_softn ms_test.yml</li></ul> <h5 id="训练方法："><a href="#训练方法：" class="header-anchor">#</a> 训练方法：</h5> <p>初赛数据集上训练 13 万次，复赛在初赛 13 万基础上 继续训练至 32 万次，然后在 32 万次基础上调整分辨率继续训练至 40 万次，分辨率调整思路为去掉多尺度训练，直接采用多尺度中最 大尺度训练，在实际测试中调整后的效果最好，取 40 万次的模型提交最终结果。</p> <ul><li><p>训练至 32 万次的参数配置：</p> <table><thead><tr><th>max_iters</th> <th>320000</th></tr></thead> <tbody><tr><td>anchors</td> <td>与 baseline 保持一致</td></tr> <tr><td>base_lr</td> <td>0.005</td></tr> <tr><td>milestones</td> <td>[200000, 270000]</td></tr> <tr><td>target_size</td> <td>[800,832,864,896,928,960,992]</td></tr> <tr><td>max_size</td> <td>1821</td></tr> <tr><td>batch_size</td> <td>2</td></tr></tbody></table></li></ul> <h5 id="测试参数："><a href="#测试参数：" class="header-anchor">#</a> 测试参数：</h5> <table><thead><tr><th>target_size</th> <th>[992]</th></tr></thead> <tbody><tr><td>max_size</td> <td>1764</td></tr> <tr><td>batch_size</td> <td>1</td></tr></tbody></table> <p>注：当前工程内文件为最后增大分辨率微调至 40 万次的参数配置，前 13 万次的配置在初赛配置文件中,复赛配置文件均在 PaddleDetection_traffic/configs/traffic 文件夹下.</p> <h4 id="检测阈值调整"><a href="#检测阈值调整" class="header-anchor">#</a> 检测阈值调整</h4> <p>通过测试分析，阈值选择 0.63、0.66、0.69 等值最终结果优于初 赛阈值，并最终选取合适的阈值为 0.63，与初赛略有不同；</p> <h3 id="匹配方案"><a href="#匹配方案" class="header-anchor">#</a> 匹配方案</h3> <h4 id="匹配模型尝试"><a href="#匹配模型尝试" class="header-anchor">#</a> 匹配模型尝试</h4> <ul><li><p>1）复赛初期仍使用 baseline 模型，仍能取得不错结果；</p></li> <li><p>2）同时利用复赛数据集进行 baseline 模型微调； 将初赛数据和复赛数据合并并打乱顺序，分了 data_train1
和 data_train2（9:1),先在 data_train1 上训练,然后再在data_train2 上训练，最后在 data_train1 上微调。</p></li> <li><p>训练命令参数设置:</p> <table><thead><tr><th>train_batch_size</th> <th>256</th></tr></thead> <tbody><tr><td>class_dim</td> <td>&gt;=35591</td></tr> <tr><td>lr</td> <td>0.01</td></tr> <tr><td>lr_str</td> <td>piecewise_decay</td></tr></tbody></table></li></ul> <p>| lr_steps         | 9000,15000      |
| total_iter_num   | 200 000         |
| image_shape      | 3,64,64         |
| save_iter_step   | 4000            |
| loss_name        | softmax         |</p> <p>其他参数均为默认值,训练至 24000 次迭代后 lr 下降至 0.0001，再次将 lr 设为 0.01,断点续训，经过大约 72000 次迭代，loss 下降到 1.1 左右开始波动，之后又近 20000 次迭代 loss均无明显下降，中止训练。
<strong>finetune</strong> 模型参数设置:</p> <table><thead><tr><th>train_batch_size</th> <th>75</th></tr></thead> <tbody><tr><td>lr</td> <td>0.001</td></tr> <tr><td>lr_strategy</td> <td>piecewis</td></tr></tbody></table> <p>其他参数默认,最终采用训练 52000 次的模型。</p> <ul><li>3）训练更大的 ResNet101、ResNet152 等网络:
细分类模型 Resnet101</li> <li>参数设置:</li></ul> <table><thead><tr><th>train_batch_size</th> <th>256</th></tr></thead> <tbody><tr><td>class_dim</td> <td>9993</td></tr> <tr><td>lr</td> <td>0.01</td></tr> <tr><td>lr_strategy</td> <td>piecewise_decay</td></tr> <tr><td>lr_steps</td> <td>9000,15000</td></tr> <tr><td>total_iter</td> <td>18000</td></tr> <tr><td>loss_name</td> <td>softmax</td></tr></tbody></table> <p>其他参数均为默认值。训练 18000 个 iter,</p> <table><thead><tr><th>loss</th> <th>1.695317</th></tr></thead> <tbody><tr><td>acc</td> <td>0.6852</td></tr></tbody></table> <ul><li><p>4）增大或减小网络输入分辨率</p> <p>尝试设置匹配模型输入分辨率为&quot;3,32,32&quot;和&quot;3,320,320&quot;</p></li></ul> <p>测试对比发现，ResNet101 和 ResNet152 的效果均不如微调的 ResNet50 网络的效果好，且修改了网络分辨率后得分也会降低，分析原因可能是训练太慢，模型总体训练时间过短，没有达到最优效果，最终采用微调了 52000 次的 ResNet50 模型，阈值 0.66。</p> <h4 id="匹配策略-2"><a href="#匹配策略-2" class="header-anchor">#</a> 匹配策略</h4> <p>初赛主要根据余弦距离之差进行重复匹配的过滤，但是不可避免仍然存在相似度接近的重复匹配。因此考虑到相匹配的两组图片是同一地点的场景，目标实体本身的相互关系是固定的，因此采用目标在图片中的相对位置进行比对，进一步去掉错误匹配。</p> <p><img src="/img/AI/2020baidustar/7.png" alt=""></p> <div class="language- extra-class"><pre><code>                    图 7 目标相对位置关系示意图
</code></pre></div><p>如图 7 所示，具体来说，如果 A组中目标 A1 同时与 B 组某一张 图片中目标 B1 和 B2 匹配，根据 A1 在其图片中所在的位置，选择 B 中两个目标之一保留。假设 A1 位于所在图片的左半侧，则正确的匹 配目标也应该在相同的半侧，否则就是错误匹配，因此保留 A1 与 B1 匹配的结果，去除与 B2 匹配的结果。 更进一步的，如果 A 组中一张图片同时检出了 A1 和 A2，与 B 组某一张图片的 B1 和 B2，存在 A1 和 B1、A1 和 B2、A2 和 B1、 A2 和 B2 匹配的情况，则判断 A1 与 A2、B1 与 B2 的位置关系，靠左边的两个目标匹配结果保留，靠右边的两个目标匹配结果保留，目标位置交叉的两个匹配去除。</p> <ul><li>匹配策略：metric_learning_traffic/utility.py 的 save_result 函数内</li> <li>匹配结果可视化：metric_learning_traffic/vis_result； 测试时需添加 test_pic_path 参数，指定测试集图片所在文件夹</li></ul> <h2 id="参考引用"><a href="#参考引用" class="header-anchor">#</a> 参考引用</h2> <ul><li>[1] 目标检测库: <a href="https://github.com/PaddlePaddle/PaddleDetection" target="_blank" rel="noopener noreferrer">https://github.com/PaddlePaddle/PaddleDetection<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li> <li>[2] 模型库和基线: <a href="https://github.com/PaddlePaddle/PaddleDetection/blob/release/0.3/docs/MODEL_ZOO_cn.md" target="_blank" rel="noopener noreferrer">https://github.com/PaddlePaddle/PaddleDetection/blob/release/0.3/docs/MODEL_ZOO_cn.md<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li> <li>[3] 度量学习库: <a href="https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/metric_learning" target="_blank" rel="noopener noreferrer">https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/metric_learning<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul> <div class="custom-block tip"><p>https://github.com/LJoson/2020_BaiduStar_Developer_Competition</p> <p>https://mp.weixin.qq.com/s/EtXfy9UJGvdOlMsedjusiw</p> <p>https://zhuanlan.zhihu.com/p/102817180</p> <p>https://blog.csdn.net/shine19930820/article/details/75209021</p> <p>https://blog.csdn.net/m_buddy/article/details/96503647</p> <p>https://blog.csdn.net/denglei2430/article/details/101649089</p> <p>https://blog.csdn.net/LoseInVain/article/details/88363776?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channel_param&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channel_param</p></div></div> <footer class="page-edit" style="display:none;"><!----> <div class="last-updated"><span class="prefix">最后更新时间: </span> <span class="time">2024/03/11, 16:46:40</span></div></footer> <!----> <!----> <div class="article-list" data-v-61e7bf3a><div class="article-title" data-v-61e7bf3a><a href="/timeline/" class="iconfont icon-shizhong" data-v-61e7bf3a>最近更新</a></div> <div class="article-wrapper" data-v-61e7bf3a><dl data-v-61e7bf3a><dd data-v-61e7bf3a>01</dd> <dt data-v-61e7bf3a><a href="/views/AI/ebot/ebot1.html" data-v-61e7bf3a><div data-v-61e7bf3a>技术随笔《二》：人形机器人模仿学习与传统控制方法概述</div></a> <span data-v-61e7bf3a>04-12</span></dt></dl><dl data-v-61e7bf3a><dd data-v-61e7bf3a>02</dd> <dt data-v-61e7bf3a><a href="/views/AI/ebot/ebot0.html" data-v-61e7bf3a><div data-v-61e7bf3a>技术随笔《一》：人形机器人控制算法概述</div></a> <span data-v-61e7bf3a>04-10</span></dt></dl><dl data-v-61e7bf3a><dd data-v-61e7bf3a>03</dd> <dt data-v-61e7bf3a><a href="/views/AI/coder/" data-v-61e7bf3a><div data-v-61e7bf3a>编解码器详解</div></a> <span data-v-61e7bf3a>12-26</span></dt></dl></div> <div data-v-61e7bf3a><a href="/timeline/" class="article-more" data-v-61e7bf3a>更多文章 &gt;</a></div></div></main> <!----> <div class="comments-wrapper" data-v-4d80cb8a><div class="valine-wrapper"><div id="valine"></div></div></div></div></div></div></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-a81d141e data-v-a81d141e><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-a81d141e><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-a81d141e></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-a81d141e></path></svg></div><!----><div data-v-4a66ed39><div class="DetailsOpenFlag" style="right:1rem;bottom:9rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;font-size:14px;font-weight:500;display:none;" data-v-4a66ed39>
 展开

</div></div><div class="kanbanniang" data-v-3c101199><div class="banniang-container" style="display:;" data-v-3c101199><div class="messageBox" style="right:68px;bottom:190px;display:none;" data-v-3c101199>
      欢迎来到 GLIMMER小作坊的工具人
    </div> <div class="operation" style="right:90px;bottom:40px;display:;" data-v-3c101199><i class="kbnfont kbn-ban-home ban-home" data-v-3c101199></i> <i class="kbnfont kbn-ban-message message" data-v-3c101199></i> <i class="kbnfont kbn-ban-close close" data-v-3c101199></i> <a target="_blank" href="https://vuepress-theme-reco.recoluan.com/views/plugins/kanbanniang.html" data-v-3c101199><i class="kbnfont kbn-ban-info info" data-v-3c101199></i></a> <i class="kbnfont kbn-ban-theme skin" style="display:;" data-v-3c101199></i></div> <canvas id="banniang" width="150" height="220" class="live2d" style="right:90px;bottom:-20px;opacity:0.9;" data-v-3c101199></canvas></div> <div class="showBanNiang" style="display:none;" data-v-3c101199>
    看板娘
  </div></div></div></div>
    <script src="/assets/js/app.c1719760.js" defer></script><script src="/assets/js/5.882ae477.js" defer></script><script src="/assets/js/1.ad2741e3.js" defer></script><script src="/assets/js/2.b0f5b6a6.js" defer></script><script src="/assets/js/26.5c85b2c3.js" defer></script><script src="/assets/js/20.a8dae886.js" defer></script>
  </body>
</html>
